#include "add.h"

int main()
{
    // 获取共享内存
    key_t key = getkey(); // 生成key值
    int shmid = getshm(key);

    // 挂接共享内存
    cout << "开始将共享内存映射到进程地址空间当中" << endl;
    cout << "shmid = " << shmid << endl;
    char *start = (char *)shmatway(shmid);
    // printf("%p\n",start);

    // 管道--提供同步机制
    int fd = open(path.c_str(), O_WRONLY | O_TRUNC);

    // 通信(得到共享内存--后运行运行--写数据)
    char c = 'C';
    while (c <= 'R')
    {
        start[c - 'C'] = c;
        c++;
        // 共享内存不提供同步机制
        cout << "向共享内存写数据中：" << endl;

        int tmp = 0;
        write(fd, &tmp, sizeof(tmp));
        sleep(1);
    }

    // 取消挂接关闭文件
    shmdt(start);
    close(fd);
}